/* eslint-disable @typescript-eslint/no-explicit-any */
/*
 *  Copyright 2021 Collate
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *  http://www.apache.org/licenses/LICENSE-2.0
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

 /**
 * Web分析事件数据
 */
export interface WebAnalyticEventData {
    /**
     * 捕获的Web分析数据
     */
    eventData?: Data;
    /**
     * 报告的唯一标识符
     */
    eventId?: string;
    /**
     * 事件类型
     */
    eventType: WebAnalyticEventType;
    /**
     * 事件时间戳
     */
    timestamp?: number;
}

/**
 * 捕获的Web分析数据
 *
 * 页面查看数据事件
 *
 * 事件跟踪器（例如，点击等）
 */
export interface Data {
    /**
     * 页面的完整URL
     */
    fullUrl?: string;
    /**
     * 域名
     */
    hostname?: string;
    /**
     * 页面上设置的语言
     */
    language?: string;
    /**
     * 页面加载时间（秒）
     */
    pageLoadTime?: number;
    /**
     * 引用来源URL
     */
    referrer?: string;
    /**
     * 屏幕大小
     */
    screenSize?: string;
    /**
     * 标识会话的唯一ID
     */
    sessionId?: string;
    /**
     * 域规范之后的URL部分
     *
     * 域规范后的URL部分
     */
    url?: string;
    /**
     * OpenMetadata登录用户ID
     */
    userId?: string;
    /**
     * T执行的事件类型
     */
    eventType?: CustomEventTypes;
    /**
     * 事件的值
     */
    eventValue?: string;
    [property: string]: any;
}

/**
 * T执行的事件类型
 *
 * 可以执行的事件类型
 */
export enum CustomEventTypes {
    Click = "CLICK",
}

/**
 * 事件类型
 */
export enum WebAnalyticEventType {
    CustomEvent = "CustomEvent",
    PageView = "PageView",
}
